var events = require("events");
// console.log(events);

var { EventEmitter } = events;
// console.log(EventEmitter);

var e = new EventEmitter();
// console.log(e);

var a, b, c, d, e, f;
e.setMaxListeners(2);

// 绑定
e.on("hello", a = function (data) {
    console.log("这是绑定的函数a", 11111, data);
})
e.on("hello", b = function (data) {
    console.log("这是绑定的函数b", 22222, data);
})
e.addListener("hello", c = function (data) {
    console.log("这是绑定的函数c", 33333, data);
})

e.prependListener("hello", d = function (data) {
    console.log("这是绑定的函数d", 44444, data);
})

e.on("哈哈", function () {
    console.log("hahahahaha");
})

// listenerCount(eventName)  对应事件名 查看绑定事件的个数
// console.log(e.listenerCount("hello"));
// console.log(e.listenerCount("哈哈"));

console.log(e.eventNames());  // 返回一个数据 => 绑定事件的事件名的集合

e.once("hello", c = function (data) {
    console.log("这是绑定的函数c", 33333, data);
})

// 清除对应
// e.off(eventName,callback)    对应事件名 清除回调函数
// e.removeListener(eventName,callback)    同off()

e.off("hello", a);
// e.off("hello", b);
// e.removeListener("hello", c);
// e.removeAllListeners("hello");

e.emit("hello", { name: "666666" });  // 第一次触发
// e.emit("哈哈");